<template>
  <!-- Excel 导入功能组件 -->
  <upload-excel :on-success="handleSuccess" />
</template>

<script>
import { formatExcelDate } from '@/utils/index'//日期转换封装
import { importEmployeeAPI } from '@/api/index'
export default {
  name: 'Excel',
  methods: {
    // 导入成功以后的回调函数
    async handleSuccess ({ results, header }) {
      // console.log(results, header)//前打印数组里的对象，后中文名字key
      // 把中文的excel换成英文的和打印的接口一致
      // 思路：
      // 1.创建一个中文：英文一一对应的关系
      // 2.遍历对象里的每个中文key，去上面换成英文的value
      // 3.用英文value作为新对象的key，读出原来对象里的value作为新对象的vlaue
      const userRelations = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber',
        '部门': 'departmentName',
        '聘用形式': 'formOfEmployment'
      }
      const newArray = []
      results.forEach(item => {//item每一项
        const newObj = {}
        // console.log(Object.keys(item))//['手机号', '姓名', '入职日期', '转正日期', '工号']
        Object.keys(item).forEach(key => {//遍历对象的value值
          // console.log(key)//手机号,姓名,入职日期,转正日期,工号
          // 找一个对象存进去
          const enKey = userRelations[key]//把上面中英的对象，应为存到新数据里=====换出英文的key字符串
          // console.log(enKey)//英文的key，timeOfEntry，mobile，correctionTime，username，workNumber

          // 进行对日期的判断
          if (enKey === 'timeOfEntry' || enKey === 'correctionTime') {//如果enkey=入职日期或者enkey=转正日期
            const time = formatExcelDate(item[key])
            //把value值转换一下当前年月
            newObj[enKey] = time//把上面的value值在给上面的新数组

          } else {//中英转换
            // console.log(item[key])//value值
            newObj[enKey] = item[key]//item的每个value赋值给上面定义的个空对象，=======把中文对象对应中文key的value取出，赋予给新对象的英文key后面
            // console.log(newObj[enKey])//value值
          }

        })//上面循环完一次，组装好一个英文key的完整对象
        newArray.push(newObj)
      })
      // console.log(newArray)
      const res = await importEmployeeAPI(newArray)
      console.log(res)
      if (res.success) this.$message.success('成功')
      this.$router.push('/employees')//跳转员工页面
    }
  }
}
</script>

   <style lang="scss" scoped></style>
